package com.ruoyi.crm.mapper;

import java.util.List;
import com.ruoyi.crm.domain.CrmStockMedicine;
import com.ruoyi.crm.domain.CrmStockMedicineVisible;

/**
 * 药品信息Mapper接口
 * 
 * @author ruoyi
 * @date 2025-11-03
 */
public interface CrmStockMedicineMapper 
{
    /**
     * 查询药品信息
     * 
     * @param medicineId 药品ID
     * @return 药品信息
     */
    public CrmStockMedicine selectCrmStockMedicineById(Long medicineId);

    /**
     * 查询药品信息列表
     * 
     * @param crmStockMedicine 药品信息
     * @return 药品信息集合
     */
    public List<CrmStockMedicine> selectCrmStockMedicineList(CrmStockMedicine crmStockMedicine);

    /**
     * 新增药品信息
     * 
     * @param crmStockMedicine 药品信息
     * @return 结果
     */
    public int insertCrmStockMedicine(CrmStockMedicine crmStockMedicine);

    /**
     * 修改药品信息
     * 
     * @param crmStockMedicine 药品信息
     * @return 结果
     */
    public int updateCrmStockMedicine(CrmStockMedicine crmStockMedicine);

    /**
     * 删除药品信息
     * 
     * @param medicineId 药品ID
     * @return 结果
     */
    public int deleteCrmStockMedicineById(Long medicineId);

    /**
     * 批量删除药品信息
     * 
     * @param medicineIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteCrmStockMedicineByIds(Long[] medicineIds);
    
    /**
     * 批量删除药品可见用户关联
     * 
     * @param medicineIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteCrmStockMedicineVisibleByMedicineIds(Long[] medicineIds);
    
    /**
     * 批量新增药品可见用户关联
     * 
     * @param medicineVisibleList 药品可见用户关联列表
     * @return 结果
     */
    public int batchCrmStockMedicineVisible(List<CrmStockMedicineVisible> medicineVisibleList);
    
    /**
     * 查询药品可见用户关联列表
     * 
     * @param medicineId 药品ID
     * @return 药品可见用户关联集合
     */
    public List<CrmStockMedicineVisible> selectCrmStockMedicineVisibleByMedicineId(Long medicineId);
}